﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using sonicERPinfoCsharp;
using System.Collections;
using System.Data;


namespace sonicERPDALCsharp
{

    public sealed   class NivelusuarioDAL:DAL
    {

        public override DataView getdados(info tabela)
        {
            try
            {
               


                DAL.Select_ = "SELECT " +
               " N.id [codigo]," +
               " U.nome [Cadastrado Por]," +
               " N.nivel," +
               " Convert (VARCHAR(10), N.dt_cadastro,103)[Data do Cadastro]" +
               " FROM NIVELUSUARIO N" +
               " INNER JOIN usuario U" +
               " ON n.idusuario = u.id" +
               " WHERE " +
               " ((U.nome IS NULL OR @parametro IS NULL)" +
               "  OR(U.NOME LIKE @parametro +'%'))" +
               " OR " +
               " ((N.nivel IS NULL OR @parametro IS NULL)" +
               " OR(N.nivel LIKE @parametro +'%'))" +
               " OR" +
               "((N.id IS  NULL OR @parametro IS NULL)" +
               " OR(N.id LIKE @parametro + '%'))";
              

            DAL.Tipocomando = false;
            DAL.Existepametro = true;
            DAL.Parameter = new ArrayList();
            DAL.Parameter.Add("@parametro");
            DAL.Entidade = new ArrayList();
            DAL.Entidade.Add(tabela.nivelusuario.Nivel);

            return base.getdados(tabela);
            }
            catch (Exception ex )
            {

                throw new Exception (ex.Message);
            }

        }
       


        public override void insert(info tabela)
        {
            try
            {

           
            
         DAL.Select_ = "INSERTNIVELUSUARIO";
         DAL.Tipocomando = true;

         DAL.Parameter = new ArrayList();
         DAL.Parameter.Add("@idusuario");
         DAL.Parameter.Add("@nivel");

         DAL.Entidade = new ArrayList();

         DAL.Entidade.Add(tabela.nivelusuario.Idusuario);
         DAL.Entidade.Add(tabela.nivelusuario.Nivel);
       
      
        DAL.Existepametro = true;
         base.insert(tabela);
            }
            catch (Exception ex)
            {

                throw new Exception(ex.Message);
            }
        }


        public override void delete(info tabela)
        {
            try
            {

           
            DAL.Select_ = "DELETENIVELUSUARIO";
            DAL.Tipocomando = true;
            DAL.Existepametro = true;
            DAL.Parameter = new ArrayList();

            DAL.Parameter.Add("@idnivelusuario");
		    DAL.Parameter.Add("@idusuario");
	        DAL.Parameter.Add("@nivel");
            
            DAL.Entidade = new ArrayList();
            
            DAL.Entidade.Add(tabela.nivelusuario.Id);
            DAL.Entidade.Add(tabela.nivelusuario.Idusuario);
            DAL.Entidade.Add(tabela.nivelusuario.Nivel);

            base.delete(tabela);
            }
            catch (Exception ex )
            {

                throw new Exception(ex.Message);
            }
        }



        public override void update(info tabela)
        {
            try
            {
            DAL.Select_ = "UPDATENIVELUSUARIO";
            DAL.Existepametro = true;
            DAL.Tipocomando = true;
            DAL.Parameter = new ArrayList();

            DAL.Parameter.Add("@idnivelusuario");
		    DAL.Parameter.Add("@idusuario");
            DAL.Parameter.Add("@nivel");
            DAL.Entidade = new ArrayList();
            DAL.Entidade.Add(tabela.nivelusuario.Id);
            DAL.Entidade.Add(tabela.nivelusuario.Idusuario);
            DAL.Entidade.Add(tabela.nivelusuario.Nivel);
	

            base.update(tabela);
                 }
            catch (Exception ex)
            {
                
                throw new Exception(ex.Message);
            }
        }
       
    }
}
